#include "Matrix.h"

int main(int argc, char *argv[])
{
    Matrix<double> M(3,4);
    for(int i = 0; i < 3; i++)
	for(int j = 0; j < 4; j++)
	    M(i,j) = i + j;
    for(int i = 0; i < 3; i++)
    {
	for(int j = 0; j < 4; j++)
	    std::cout << M(i,j) << " ";
	std::cout << std::endl;
    }
    Matrix<double> M_tr(4,3);
    M_tr = M.transpose();
    for(int i = 0; i < 4; i++)
    {
	for(int j = 0; j < 3; j++)
	    std::cout << M_tr(i,j) << " ";
	std::cout << std::endl;
    }
    std::valarray<double> p {1.0, 2.0, 3.0, 4.0};
    p = M*(p);
    for(int i = 0; i < 3; i++)
	std::cout << p[i] << std::endl;
    return 0;
};
